home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Adobe Air 1.5 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / effects / effectClasses / MoveInstance.as < prev    next >
Encoding:
Text File  |  2008-10-29  |  7.8 KB  |  255 lines

  1. package mx.effects.effectClasses
  2. {
  3.    import flash.events.Event;
  4.    import mx.core.Container;
  5.    import mx.core.EdgeMetrics;
  6.    import mx.core.IUIComponent;
  7.    import mx.core.mx_internal;
  8.    import mx.effects.EffectManager;
  9.    import mx.events.MoveEvent;
  10.    import mx.styles.IStyleClient;
  11.    
  12.    use namespace mx_internal;
  13.    
  14.    public class MoveInstance extends TweenEffectInstance
  15.    {
  16.       mx_internal static const VERSION:String = "3.0.0.0";
  17.       
  18.       public var xFrom:Number;
  19.       
  20.       public var yFrom:Number;
  21.       
  22.       private var left:*;
  23.       
  24.       private var forceClipping:Boolean = false;
  25.       
  26.       public var xTo:Number;
  27.       
  28.       private var top:*;
  29.       
  30.       private var horizontalCenter:*;
  31.       
  32.       public var yTo:Number;
  33.       
  34.       private var oldWidth:Number;
  35.       
  36.       private var right:*;
  37.       
  38.       private var bottom:*;
  39.       
  40.       private var oldHeight:Number;
  41.       
  42.       public var xBy:Number;
  43.       
  44.       public var yBy:Number;
  45.       
  46.       private var checkClipping:Boolean = true;
  47.       
  48.       private var verticalCenter:*;
  49.       
  50.       public function MoveInstance(param1:Object)
  51.       {
  52.          super(param1);
  53.       }
  54.       
  55.       override public function initEffect(param1:Event) : void
  56.       {
  57.          super.initEffect(param1);
  58.          if(param1 is MoveEvent && param1.type == MoveEvent.MOVE)
  59.          {
  60.             if(isNaN(xFrom) && isNaN(xTo) && isNaN(xBy) && isNaN(yFrom) && isNaN(yTo) && isNaN(yBy))
  61.             {
  62.                xFrom = MoveEvent(param1).oldX;
  63.                xTo = target.x;
  64.                yFrom = MoveEvent(param1).oldY;
  65.                yTo = target.y;
  66.             }
  67.          }
  68.       }
  69.       
  70.       override public function play() : void
  71.       {
  72.          var _loc2_:EdgeMetrics = null;
  73.          var _loc3_:Number = NaN;
  74.          var _loc4_:Number = NaN;
  75.          var _loc5_:Number = NaN;
  76.          var _loc6_:Number = NaN;
  77.          var _loc7_:Number = NaN;
  78.          var _loc8_:Number = NaN;
  79.          super.play();
  80.          EffectManager.mx_internal::startBitmapEffect(IUIComponent(target));
  81.          if(isNaN(xFrom))
  82.          {
  83.             xFrom = !isNaN(xTo) && !isNaN(xBy) ? xTo - xBy : Number(target.x);
  84.          }
  85.          if(isNaN(xTo))
  86.          {
  87.             if(isNaN(xBy) && propertyChanges && propertyChanges.end["x"] !== undefined)
  88.             {
  89.                xTo = propertyChanges.end["x"];
  90.             }
  91.             else
  92.             {
  93.                xTo = !isNaN(xBy) ? xFrom + xBy : Number(target.x);
  94.             }
  95.          }
  96.          if(isNaN(yFrom))
  97.          {
  98.             yFrom = !isNaN(yTo) && !isNaN(yBy) ? yTo - yBy : Number(target.y);
  99.          }
  100.          if(isNaN(yTo))
  101.          {
  102.             if(isNaN(yBy) && propertyChanges && propertyChanges.end["y"] !== undefined)
  103.             {
  104.                yTo = propertyChanges.end["y"];
  105.             }
  106.             else
  107.             {
  108.                yTo = !isNaN(yBy) ? yFrom + yBy : Number(target.y);
  109.             }
  110.          }
  111.          tween = createTween(this,[xFrom,yFrom],[xTo,yTo],duration);
  112.          var _loc1_:Container = target.parent as Container;
  113.          if(_loc1_)
  114.          {
  115.             _loc2_ = _loc1_.viewMetrics;
  116.             _loc3_ = _loc2_.left;
  117.             _loc4_ = _loc1_.width - _loc2_.right;
  118.             _loc5_ = _loc2_.top;
  119.             _loc6_ = _loc1_.height - _loc2_.bottom;
  120.             if(xFrom < _loc3_ || xTo < _loc3_ || xFrom + target.width > _loc4_ || xTo + target.width > _loc4_ || yFrom < _loc5_ || yTo < _loc5_ || yFrom + target.height > _loc6_ || yTo + target.height > _loc6_)
  121.             {
  122.                forceClipping = true;
  123.                _loc1_.mx_internal::forceClipping = true;
  124.             }
  125.          }
  126.          mx_internal::applyTweenStartValues();
  127.          if(target is IStyleClient)
  128.          {
  129.             left = target.getStyle("left");
  130.             if(left != undefined)
  131.             {
  132.                target.setStyle("left",undefined);
  133.             }
  134.             right = target.getStyle("right");
  135.             if(right != undefined)
  136.             {
  137.                target.setStyle("right",undefined);
  138.             }
  139.             top = target.getStyle("top");
  140.             if(top != undefined)
  141.             {
  142.                target.setStyle("top",undefined);
  143.             }
  144.             bottom = target.getStyle("bottom");
  145.             if(bottom != undefined)
  146.             {
  147.                target.setStyle("bottom",undefined);
  148.             }
  149.             horizontalCenter = target.getStyle("horizontalCenter");
  150.             if(horizontalCenter != undefined)
  151.             {
  152.                target.setStyle("horizontalCenter",undefined);
  153.             }
  154.             verticalCenter = target.getStyle("verticalCenter");
  155.             if(verticalCenter != undefined)
  156.             {
  157.                target.setStyle("verticalCenter",undefined);
  158.             }
  159.             if(left != undefined && right != undefined)
  160.             {
  161.                _loc7_ = Number(target.width);
  162.                oldWidth = target.explicitWidth;
  163.                target.width = _loc7_;
  164.             }
  165.             if(top != undefined && bottom != undefined)
  166.             {
  167.                _loc8_ = Number(target.height);
  168.                oldHeight = target.explicitHeight;
  169.                target.height = _loc8_;
  170.             }
  171.          }
  172.       }
  173.       
  174.       override public function onTweenUpdate(param1:Object) : void
  175.       {
  176.          var _loc2_:Container = null;
  177.          var _loc3_:EdgeMetrics = null;
  178.          var _loc4_:Number = NaN;
  179.          var _loc5_:Number = NaN;
  180.          var _loc6_:Number = NaN;
  181.          var _loc7_:Number = NaN;
  182.          EffectManager.suspendEventHandling();
  183.          if(!forceClipping && checkClipping)
  184.          {
  185.             _loc2_ = target.parent as Container;
  186.             if(_loc2_)
  187.             {
  188.                _loc3_ = _loc2_.viewMetrics;
  189.                _loc4_ = _loc3_.left;
  190.                _loc5_ = _loc2_.width - _loc3_.right;
  191.                _loc6_ = _loc3_.top;
  192.                _loc7_ = _loc2_.height - _loc3_.bottom;
  193.                if(param1[0] < _loc4_ || param1[0] + target.width > _loc5_ || param1[1] < _loc6_ || param1[1] + target.height > _loc7_)
  194.                {
  195.                   forceClipping = true;
  196.                   _loc2_.mx_internal::forceClipping = true;
  197.                }
  198.             }
  199.          }
  200.          target.move(param1[0],param1[1]);
  201.          EffectManager.resumeEventHandling();
  202.       }
  203.       
  204.       override public function onTweenEnd(param1:Object) : void
  205.       {
  206.          var _loc2_:Container = null;
  207.          EffectManager.mx_internal::endBitmapEffect(IUIComponent(target));
  208.          if(left != undefined)
  209.          {
  210.             target.setStyle("left",left);
  211.          }
  212.          if(right != undefined)
  213.          {
  214.             target.setStyle("right",right);
  215.          }
  216.          if(top != undefined)
  217.          {
  218.             target.setStyle("top",top);
  219.          }
  220.          if(bottom != undefined)
  221.          {
  222.             target.setStyle("bottom",bottom);
  223.          }
  224.          if(horizontalCenter != undefined)
  225.          {
  226.             target.setStyle("horizontalCenter",horizontalCenter);
  227.          }
  228.          if(verticalCenter != undefined)
  229.          {
  230.             target.setStyle("verticalCenter",verticalCenter);
  231.          }
  232.          if(left != undefined && right != undefined)
  233.          {
  234.             target.explicitWidth = oldWidth;
  235.          }
  236.          if(top != undefined && bottom != undefined)
  237.          {
  238.             target.explicitHeight = oldHeight;
  239.          }
  240.          if(forceClipping)
  241.          {
  242.             _loc2_ = target.parent as Container;
  243.             if(_loc2_)
  244.             {
  245.                forceClipping = false;
  246.                _loc2_.mx_internal::forceClipping = false;
  247.             }
  248.          }
  249.          checkClipping = false;
  250.          super.onTweenEnd(param1);
  251.       }
  252.    }
  253. }
  254.  
  255.